package com.brillilab.service.core.method;

import com.brillilab.domain.po.method.MethodRecommend;
import com.brillilab.domain.po.method.MethodRecommendReceive;

import java.util.List;

public interface IMethodRecommendService {
    /**
    * @Description: TODO
    * @Params: [recommendId, labMemberId]
    * @return com.brillilab.domain.po.method.MethodRecommend
    * @author wuzhiyu
    * @date 2019/2/26 18:17
    */
    MethodRecommend getRecommend(Long recommendId,Long labId);
    
    boolean updateById(MethodRecommend recommend);
    
    boolean update(Long methodId,Long labId,Integer state);
/**
* @Description: 保存推荐方法接受处理
* @Params: [receive]
* @return boolean
* @author wuzhiyu
* @date 2019/2/26 19:09
*/
    boolean saveReceive(MethodRecommendReceive receive);
/**
* @Description: TODO
* @Params: [recommendId, labMemberId]
* @return com.brillilab.domain.po.method.MethodRecommendReceive
* @author wuzhiyu
* @date 2019/2/26 19:28 
*/
    MethodRecommendReceive getReceiveByRecommendIdAndMemberId(Long recommendId,Long labMemberId);
    
    /**
     * 保存方法推荐记录
     * @param recommend
     * @return
     */
    MethodRecommend addRecommend(MethodRecommend recommend);


    List<MethodRecommend> getRecommendList(List<Long> recommendIds,Long labId);

    int saveReceiveBatch(List<MethodRecommendReceive> receiveList);

    List<MethodRecommend> selectListByLabId(Long labId);

    /**
     * 根据实验室和方法Id获取推荐信息
     * @param labId
     * @param methodId
     * @return
     */
    MethodRecommend getRecommendByLabIdAndMethodId(Long labId,Long methodId);
}
